<!DOCTYPE html>
<html>
<!--
Copyright 2008 The Closure Library Authors. All Rights Reserved.

Use of this source code is governed by an Apache 2.0 License.
See the COPYING file for details.
-->
<head>
<title>Closure Unit Tests - goog.i18n.GraphemeBreak</title>
<script type="text/javascript" src="../base.js"></script>
<script type="text/javascript">
  goog.require('goog.i18n.GraphemeBreak');
  goog.require('goog.testing.jsunit');
</script>
</head>
<body>
<script type="text/javascript">
  function testBreakNormalAscii() {
    assertTrue(goog.i18n.GraphemeBreak.hasGraphemeBreak('a'.charCodeAt(0),
        'b'.charCodeAt(0), true));
  }

  function testBreakAsciiWithExtendedChar() {
    assertFalse(goog.i18n.GraphemeBreak.hasGraphemeBreak('a'.charCodeAt(0),
        0x0300, true));
  }

  function testBreakSurrogates() {
    assertFalse(goog.i18n.GraphemeBreak.hasGraphemeBreak(0xDA00, 0xDC00, true));
    assertFalse(goog.i18n.GraphemeBreak.hasGraphemeBreak(0xDBFF, 0xDFFF, true));
  }

  function testBreakHangLxL() {
    assertFalse(goog.i18n.GraphemeBreak.hasGraphemeBreak(0x1100, 0x1100, true));
  }

  function testBreakHangL_T() {
    assertTrue(goog.i18n.GraphemeBreak.hasGraphemeBreak(0x1100, 0x11A8));
  }

  function testBreakHangLVxV() {
    assertFalse(goog.i18n.GraphemeBreak.hasGraphemeBreak(0xAC00, 0x1160, true));
  }

  function testBreakHangLV_L() {
    assertTrue(goog.i18n.GraphemeBreak.hasGraphemeBreak(0xAC00, 0x1100, true));
  }

  function testBreakHangLVTxT() {
    assertFalse(goog.i18n.GraphemeBreak.hasGraphemeBreak(0xAC01, 0x11A8, true));
  }

  function testBreakThaiPrependLegacy() {
    assertTrue(goog.i18n.GraphemeBreak.hasGraphemeBreak(0x0E40, 0x0E01));
  }
  
  function testBreakThaiPrependExtended() {
    assertFalse(goog.i18n.GraphemeBreak.hasGraphemeBreak(0x0E40, 0x0E01, true));
  }
  
  function testBreakDevaSpacingMarkLegacy() {
    assertTrue(goog.i18n.GraphemeBreak.hasGraphemeBreak(0x0915, 0x093E));
  }
  
  function testBreakDevaSpacingMarkExtended() {
    assertFalse(goog.i18n.GraphemeBreak.hasGraphemeBreak(0x0915, 0x093E, true));
  }
</script>
</body>
</html>
